package pbf.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

/**
 *
 * @author Ricardo
 */
public final class ValidaData
{
    public static boolean validaData(String dataFormat)
    {
        if (!dataFormat.equals("  /  /    "))
        {
           if (dataFormat.trim().length() == 10)
           {
                DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
                Calendar cal = new GregorianCalendar();
                
                try
                {
                    // gerando o calendar
                    cal.setTime(df.parse(dataFormat));
                }
                catch (ParseException ex)
                {
                    return false;
                }

                // separando os dados da string para comparacao e validacao
                String[] data = dataFormat.split("/");
                String dia = data[0];
                String mes = data[1];
                String ano = data[2];

                // testando se hah discrepancia entre a data que foi
                // inserida no caledar e a data que foi passada como
                // string. se houver diferenca, a data passada era
                // invalida
                if ((new Integer(dia)).intValue() != (new Integer(cal.get(Calendar.DAY_OF_MONTH))).intValue()) {
                    // dia nao casou
                    return (false);
                } else if ((new Integer(mes)).intValue() != (new Integer(cal.get(Calendar.MONTH) + 1)).intValue()) {
                    // mes nao casou
                    return (false);
                } else if ((new Integer(ano)).intValue() != (new Integer(cal.get(Calendar.YEAR))).intValue()) {
                    // ano nao casou
                    return (false);
                }

                return (true);
            }
        }
        else
        {
            return (false);
        }

        return (false);
    }
}
